#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include<vector>
using namespace std;

int main() {
    int n = 0;
    cin >> n;
    string str1, str2;

    cin >> str1 >> str2;
    vector<string> v;
    while (n--)
    {
        string s;
        cin >> s;
        v.push_back(s);
    }
    int flag = 0;
    auto minp1 = find(v.begin(), v.end(), str1);
    auto minp2 = find(v.begin(), v.end(), str2);
    int ret = minp1 - minp2;
    if (ret < 0) ret = -ret;
    auto p1 = find(minp1+1, v.end(), str1);
    auto p2 = find(minp2+1, v.end(), str2);
    int num = p2 - p1;
    if (num < 0) num = -num;
    ret = min(ret, num);
    while(flag==0)
    {
        p1 = find(p1+1, v.end(), str1);
        p2 = find(p2+1, v.end(), str2);
        int num = p2 - p1;
        if (num < 0) num = -num;
    }

}
//int main()
//{
//    int n;
//    vector<int> nums;
//    cin >> n;
//    int end = n;
//
//
//    for (int i = 0; i < n; i++)
//    {
//        int x;
//        cin >> x;
//        nums.push_back(x);
//    }
//    int sum = 0;
//    while (end > 1)
//    {
//        if (nums[end - 1] >= nums[end - 2])
//        {
//            sum += nums[end - 2];
//            end -= 2;
//        }
//        else {
//            sum += nums[end - 1];
//            end--;
//        }
//    }
//    cout << sum << endl;
//    return 0;
//}

//int main() {
//    double n;
//    char flag;
//    cin >> n >> flag;
//    if (n <= 1)
//    {
//        if (flag == 'y')
//            cout << 20 + 5 << endl;
//        else
//            cout << 20 << endl;
//    }
//    else {
//        n -= 1;
//        int ans;
//        if (n - (int)n == 0)
//        {
//            ans = (int)n;
//        }
//        else ans = (int)n + 1;
//        if (flag == 'n')
//        {
//            cout << 20 + ans * 1 << endl;
//        }
//        else {
//            cout << 20 + 5 + ans * 1 << endl;
//        }
//    }
//    return 0;
//}